package main

import (
	"fmt"
	"reflect"
)

type T1 struct {
}

//			注意方法得是公开的才能反射获取到
func (t *T1) Sum(a int, b int) {
	fmt.Println(a + b)
}

func main() {
	name := "Sum"
	t := &T1{}
	param1 := reflect.ValueOf(1)              //构造参数1
	param2 := reflect.ValueOf(2)              //构造参数2
	params := []reflect.Value{param1, param2} //构造函数需要的整个参数，返回值是一个切片
	//反射调用方法，根据方法名，并传入参数
	reflect.ValueOf(t).MethodByName(name).Call(params)
}
